Scanning talkgroups

ABSTRACT

An instruction to enter a scanning mode may be received at a communication device. The communication device may participate in several talkgroups. A determination may be made that at least one of the talkgroups is active. In response, the communication device may be set to a first active talkgroup. A determination may be made that a predetermined time has passed since the communication device was set to the first active talkgroup. In response, a determination also may be made that at least a second one of the talkgroups, other than the first active talkgroup, is active. In response, the communication device may be set to the second active talkgroup.

TECHNICAL FIELD

The disclosure relates generally to Push-To-Talk communication, and morespecifically to scanning talkgroups.

SUMMARY

According to an implementation of the disclosure, a method may includereceiving, at a communication device, an instruction to enter a scanningmode. The communication device may be permitted to participate in aplurality of talkgroups. The method may include, in response toreceiving the instruction to enter the scanning mode, determining thatat least one of the plurality of talkgroups is active. Further, themethod may include, in response to determining that at least one of theplurality of talkgroups is active, setting the communication device to afirst active talkgroup of the plurality of talkgroups. The method alsomay include determining that a predetermined time has passed since thecommunication device was set to the first active talkgroup. In addition,the method may include, in response to determining that thepredetermined time has passed since the communication device was set tothe first active talkgroup, determining that at least a second one ofthe plurality of talkgroups, other than the first active talkgroup, isactive. Further still, the method may include, in response todetermining that the second talkgroup, is active, setting thecommunication device to the second active talkgroup of the plurality oftalkgroups.

Other features of the present disclosure will be apparent in view of thefollowing detailed description of the disclosure and the accompanyingdrawings. Implementations described herein, including theabove-described implementation, may include a method or process, asystem, or computer-readable program code embodied on computer-readablemedia.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the present disclosure, referencenow is made to the following description taken in connection with theaccompanying drawings.

FIG. 1 is a block diagram of a network for satellite-basedcommunications using one or more communication methods, in accordancewith particular implementations of the present disclosure.

FIG. 2 is a schematic diagram showing a satellite-based implementationof a push-to-talk system, in accordance with particular implementationsof the present disclosure.

FIG. 3 is a flow chart illustrating a method for establishingcommunication via one or more talkgroups, in accordance with particularimplementations of the present disclosure.

FIG. 4 is a block diagram of a communication device configured toimplement a dynamic scanning process, in accordance with particularimplementations of the present disclosure.

FIG. 5 is a flow chart illustrating a method for using information froma control channel to determine whether each of the talkgroups accessibleto a communication device is active or inactive, in accordance withparticular implementations of the present disclosure.

FIG. 6 is a flow chart illustrating a method for performing a dynamicscanning process, in accordance with particular implementations of thepresent disclosure.

DETAILED DESCRIPTION

Aspects of the present disclosure may be illustrated and describedherein in any of a number of patentable classes or contexts includingany new and useful process, machine, manufacture, or composition ofmatter, or any new and useful improvement thereof. Accordingly, aspectsof the present disclosure may be implemented entirely in hardware,entirely in software (including firmware, resident software, micro-code,etc.) or in combinations of software and hardware that may all generallybe referred to herein as a “circuit,” “module,” “component,” or“system.” Furthermore, aspects of the present disclosure may take theform of a computer program product embodied in one or morecomputer-readable media having computer-readable program code embodiedthereon.

Any combination of one or more computer-readable media may be utilized.The computer-readable media may be a computer-readable signal medium ora computer-readable storage medium. A computer-readable storage mediummay be, for example, but not limited to, an electronic, magnetic,optical, electromagnetic, or semiconductor system, apparatus, or device,or any suitable combination of the foregoing. More specific examples (anon-exhaustive list) of such a computer-readable storage medium includethe following: a portable computer diskette, a hard disk, a randomaccess memory (“RAM”), a read-only memory (“ROM”), an erasableprogrammable read-only memory (“EPROM” or Flash memory), an appropriateoptical fiber with a repeater, a portable compact disc read-only memory(“CD-ROM”), an optical storage device, a magnetic storage device, or anysuitable combination of the foregoing. In the context of this document,a computer-readable storage medium may be any tangible medium that cancontain, or store a program for use by or in connection with aninstruction execution system, apparatus, or device.

A computer-readable signal medium may include a propagated data signalwith computer-readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer-readable signal medium may be any computer-readable medium thatis not a computer-readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device. Program codeembodied on a computer-readable signal medium may be transmitted usingany appropriate medium, including but not limited to satellitecommunications, wireless, wireline, optical fiber cable, RF signals,etc., or any suitable combination of the foregoing.

Computer program code for carrying out operations for aspects of thepresent disclosure may be written in any combination of one or moreprogramming languages, including an object oriented programminglanguage, such as JAVA, C++, C#, or other suitable programminglanguages. The program code may execute entirely on a user's device,partly on a user's device, as a stand-alone software package, partly ona user's device and partly on a remote computer, or entirely on a remotecomputer or server. In the latter scenario, a remote computer may beconnected to a user's device through any type of network, including asatellite communications network, a local area network (“LAN”), or awide area network (“WAN”), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider) or offered as a service, such as, for example, a Software as aService (“SaaS”), e.g., over a secure web interface via a httpsconnection.

Aspects of the present disclosure are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatuses(including systems), and computer program products. Individual blocks ofthe flowchart illustrations and/or block diagrams, and combinations ofblocks in the flowchart illustrations and/or block diagrams, can beimplemented by computer program instructions. These computer programinstructions may be provided to a processor of a general purposecomputer, special purpose computer, or other programmable dataprocessing apparatus to produce a machine, such that the instructions,which execute via the processor of the computer or other programmableinstruction execution apparatus, create a mechanism for implementing thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

These computer program instructions may also be stored in acomputer-readable medium. When accessed from the computer-readablemedium and executed, the computer program instructions may direct acomputer, other programmable data processing apparatus, or other devicesto function in a particular manner, such that the instructions whenstored in the computer-readable medium produce an article of manufactureincluding instructions that, when executed, cause a computer toimplement the function/act specified in the flowchart and/or blockdiagram block or blocks. The computer program instructions may also beloaded onto a computer, other programmable instruction executionapparatus, or other devices to cause a series of operational steps to beperformed on the computer, other programmable apparatuses or otherdevices to produce a computer implemented process such that theinstructions which execute on the computer or other programmableapparatus provide processes for implementing the functions/actsspecified in the flowchart and/or block diagram block or blocks.

Referring now to FIG. 1, a network 100 may facilitate communicationbetween communication devices using one or more communication methods.Specifically, FIG. 1 illustrates a block diagram of a network forsatellite-based communication using one or more communication methods.Network 100 may comprise a plurality of satellites 110, each of whichmay permit the exchange of information and services among devices thatare connected via satellites 110. Network 100 may also comprise aplurality of satellite links 115 (e.g., earth-based satellite dishes,vehicle-based satellite dishes, high-power transmitters and receivers,antennas, earth terminals, teleports) that may be configured tocommunicate with the one or more satellites 110 and relay data back andforth with the one or more satellites 110. In certain implementations,network 100 may comprise a plurality of cross-linked satellites 110 thateffectively form a network between satellites 110 across whichcommunications can be transferred. In other implementations, forexample, network 100 may comprise one or more satellites 110 and eachsuch satellite 110 may not directly connect to another satellite 110. Insuch other implementations, each satellite 110 may have a “bent pipe”architecture in which satellites 110 may only connect indirectly withone another through terrestrial-based systems, for example.

In addition, network 100 may comprise one or more operation hubs 130(e.g., a Network Operations Center (“NOC”) and/or a gateway forinterfacing the satellite-based portion of network 100 to one or moreterrestrial-based portions of network 100) configured to connect to atleast one of the plurality of satellites 110. An operation hub 130 maycomprise one or more locations (e.g., devices) that may monitor,control, or manage network 100. Each operation hub 130 may manage andmonitor one or more satellites 110. For example, operation hub 130 maycontrol movement or positioning of a satellite 110, may receive andmonitor communications between a satellite 110 and other devices, or maydetermine when satellite 110 needs maintenance. In some implementations,a dedicated operation hub 130 may be established for each satellite 110.Alternatively, in some other implementations, an operation hub 130 maymanage and monitor a plurality of satellites 110. In suchimplementations, operation hub 130 may connect directly with only onesatellite 110 that is within range for direct communication withoperation hub 130 via satellite link 115, or possibly a few satellites110 that are within range of satellite link 115, and operation hub 130may indirectly manage and control other satellites 110 in network 100through cross-linked communications between the satellite (orsatellites) 110 within range of satellite link 115 and satellites 110outside of the range for direct communication with operation hub 130 viasatellite link 115.

In some implementations, one or more satellites 110 may maintain ageostationary orbit, and operation hub 130 may always directlycommunicate, via satellite link 115, with the same satellite 110 thatalways remains in a geostationary position within range for directcommunication with operation hub 130 via satellite link 115, forexample. In other implementations, one or more satellites 110 may notmaintain a geostationary orbit, and operation hub 130 may directlycommunicate with different satellites 110 at different times based onwhich satellite 110 or satellites 110 are within range for directcommunication with operation hub 130 via satellite link 115 at any giventime.

Operation hub 130 may be connected to one or more clouds 140, which maybe public clouds, private clouds, or community clouds. Each cloud 140may permit the exchange of information and services among devices (e.g.,operation hub 130) that are connected to such clouds 140. In certainimplementations, cloud 140 may be a wide area network, such as theInternet. In some implementations, cloud 140 may be a local areanetwork, such as an intranet. Further, cloud 140 may be a closed,private network in certain implementations, and cloud 140 may be an opennetwork in other implementations. Cloud 140 may facilitate thetransmission of information among users or devices (e.g., operation hub130, devices 120) that are connected to cloud 140 through any number ofcommunication means, such as wireless transmission of information orwired transmission of information, for example. Operation hub 130 mayintegrate signals or data from satellites 110 with terrestrial systems,such as cellular networks, the public switched telephone network (PSTN),and/or the Internet via cloud 140, for example.

One or more devices 120 may connect with operation hub 130. Such devices120 and operation hub 130 may transmit data therebetween. Devices 120may include, for example, one or more general purpose computing devices,specialized computing devices, mainframe devices, wired devices,wireless devices, monitoring devices, infrastructure devices, otherdevices configured to provide information to service providers andusers, telephones, mobile phones, computer devices, tablet computers,personal digital assistants, routers, switches, and any other suitablecommunication device. In certain implementations, for example, a device120 connected with operation hub 130 may function as a management centerand may mange a plurality of talkgroups (described in more detail below)assigned to a plurality of devices, such as communication devices 150(described below in more detail), or organizations. In suchimplementations, the device 120 may establish, for example, connectionorders for such talkgroups, priority settings for such talkgroups, homesettings for such talkgroups, security settings or keys for suchtalkgroups, or other protocols for talkgroups.

Network 100 may include a plurality of gateways 135. Gateways 135 mayfunction similarly to operation hub 130, except that gateways 135 maynot have rights to control satellites 110 or responsibilities to managesatellites 110. In certain implementations, gateways 135 may communicatewith satellites 110 via satellite links 115. In other implementations,gateways 135 may utilize other methods requiring less infrastructure,such as low power antennas, transmitters, or receivers, to communicatewith satellites 110. For example, gateways 135 may serve as bridgesbetween satellites 110, cloud 140, and devices 120 and may permit thefree (or controlled) flow of data therebetween.

Network 100 may include a plurality of communication devices 150.Similar to devices 120, communication devices 150 may include, forexample, one or more general purpose computing devices, specializedcomputing devices, mainframe devices, wired devices, wireless devices,monitoring devices, infrastructure devices, other devices configured toprovide information to service providers and users, telephones, mobilephones, computer devices, tablet computers, personal digital assistants,routers, switches, and any other suitable communication device.Communication devices 150 may be configured to collect data from orprovide data to one or more data sources (e.g., servers, networks,interfaces, other devices). For example communication devices 150 maycollect information from network 100, operation hub 130, satellite link115, satellites 110, and other devices connected to satellites 110, suchas other communication devices 150. By collecting this information,communication devices 150 may perform one or more tasks associated withtalkgroups, as discussed in more detail below, and other communicationmethods.

More particularly, communication devices 150 may establish directcommunication with satellites 110 orbiting above their terrestrialpositions. Accordingly, communication devices 150 may utilize satellites110 to establish communication with other communication devices 150,with operation hub 130, with cloud 140, with devices 120, with gateway135, and with any other suitable device or system. Communication devices150 may include features similar to those of devices 120 and maysimilarly communicate with operation hubs 130 and gateways 135 incertain implementations.

Network 100 may be configured to facilitate Push-To-Talk (“PTT”)communication. PTT communication is a method of communicating that, insome implementations, uses half-duplex communication lines in which acommunication device, such as a communication device 150, switchesbetween a dedicated transmission mode and a dedicated reception mode,for example, for the purposes of communicating with one or more othercommunication devices that collectively may be referred to as atalkgroup. In some implementations of PTT communication, thecommunication device may be in the dedicated reception mode by defaultand may switch to the dedicated transmission mode only while a “talk”button is pushed or otherwise activated. In other implementations of PTTcommunication, the communication device may switch from the dedicatedreception mode to the dedicated transmission mode in response to a firsttrigger, such as the selection of the dedicated transmission mode on thecommunication device, the detection of a particular sound (e.g., auser's voice, a particular word or command, a particular tone), or thereceipt of any other instruction or command to switch to the dedicatedtransmission mode, and the communication device may remain in thededicated transmission mode until a second trigger occurs and thecommunication device switches to the dedicated reception mode inresponse thereto. For example, the second trigger may include theselection of the dedicated reception mode on the communication device,the lapse of a particular period of time (e.g., 30 seconds, 1 minute, 5minutes, 30 minutes, 1 hour) in the dedicated transmission mode, theabsence of a particular sound (e.g., the user's voice), the detection ofa particular sound (e.g., a particular word or command, a particulartone), or the receipt of any other instruction or command to end thededicated transmission mode or to switch to the dedicated receptionmode. In some instances, when a communication device is in the dedicatedtransmission mode, the device may be said to “have the floor” of thetalkgroup.

Throughout this disclosure, PTT communications and communications moregenerally are described often in the context of voice communications.However, the systems and techniques described herein are not limited tocommunications involving voice. Rather, the systems and techniquesdescribed herein, and particularly the talkgroup scanning functionality,are more generally applicable to all forms of communication, includingdata communication. In fact, in some implementations, the communicationdevices engaging in PTT communications may not be user devices such ashandsets and the like, but instead may be machine-to-machine (“M2M”) orother data communication devices that, for example, generally may bereferred to as facilitating the “Internet of Things” (“IoT”). Forinstance, the communication devices may interface with sensors or othertypes of data processing and/or generating devices and may be configuredto participate in PTT communication sessions, for example, involving oneor more other communication devices, to share data. In suchimplementations, the communication devices still may exchange data withother communication devices within a talkgroup using PTT techniques, andthe communication devices still may employ the talkgroup scanningtechniques described herein. Furthermore, while the term “PTT” or“push-to-talk” may suggest that something (e.g., a button) must be“pushed” (and, in some cases, held) in order for a communication deviceto “take the floor” or otherwise communicate in a dedicated transmissionmode in a talkgroup, that is not necessarily the case. As describedherein, there are various other mechanisms through which communicationdevices can “take the floor” or otherwise communicate in a dedicatedtransmission mode in a talkgroup, particularly in implementations wherethe communication devices are not user devices but instead are M2M orother data communication devices.

PTT communication may facilitate communication between a plurality ofdevices, such as communication devices 150, by establishingcommunication protocols that govern which communication device 150 “hasthe floor” (e.g., is set to a dedicated transmission mode) and whichcommunication device or devices 150 are listening (e.g., are set to thededicated reception mode). Consequently, PTT communication mayefficiently allocate communication roles (e.g., either being in adedicated transmission mode or being in a dedicated reception mode)among a group of communication devices 150.

In some PTT implementations, approaches other than or in addition tohalf-duplex communication lines may be used. For example, someimplementations of PTT communication may utilize two-way (or full)duplex communication lines in which a plurality of communication devices150 may simultaneously be in transmission modes. In such alternativeimplementations, for example, users of a plurality of communicationdevices 150 may speak simultaneously and may all be heard by users ofother communication devices 150 connected with the speaking users.

In PTT communication, communication may occur via one or more trafficchannels. A traffic channel may correspond to an electromagnetic wave,such as a radio wave, of a particular frequency. A plurality ofcommunication devices may connect to one or more traffic channels. Inparticular, a communication device set to the dedicated transmissionmode and connected to a particular traffic channel may transmit acommunication over the traffic channel, e.g., by transmitting anelectromagnetic wave at the frequency corresponding to the trafficchannel, to communication devices set to the dedicated reception mode ornetwork nodes (e.g., a satellite 110) connected to the traffic channel.For example, a user may speak into a first communication device set tothe dedicated transmission mode and connected to the traffic channel;the first communication device may encode the user's message in a radiosignal and transmit the radio signal over the traffic channel; one ormore second communication devices set to the dedicated reception modeand connected to the traffic channel may receive the radio signal,including the encoded message, over the traffic channel; and the one ormore second communication devices may output the user's message in theuser's voice to the respective users of the one or more secondcommunication devices. In this manner, a communication device set to thededicated transmission mode and connected to the traffic channel maytransmit a communication (e.g., a voice communication, Morse code, adata packet) simultaneously to all (or some subset of all) othercommunication devices set to the dedicated reception mode and connectedto the traffic channel. As described below in more detail, PTTcommunication may utilize talkgroups, which function similar to thetraffic channels described above but allow communication betweencommunication devices set to a plurality of different traffic channels.

In some implementations of PTT communication, only one communicationdevice per traffic channel may be set to the dedicated transmission modeat a time. Consequently, if a communication device connected to atraffic channel is set to the dedicated transmission mode, the othercommunication devices connected to the traffic channel may not switch tothe dedicated transmission mode until the communication device set tothe dedicated transmission mode is switched to the dedicated receptionmode or otherwise deactivated, even if a first trigger for switching oneof the other communication devices to the dedicated transmission modeoccurs. For example, if pushing a particular button on a particularcommunication device is the first trigger for switching the particularcommunication device to the dedicated transmission mode, in such animplementation, pushing the particular button may not switch theparticular communication device to the dedicated transmission mode untilafter the communication device currently set to the dedicatedtransmission mode is switched to the dedicated reception mode orotherwise deactivated. In some implementations, when a first trigger forswitching one of the other communication devices to the dedicatedtransmission mode occurs, the first trigger may also serve as a secondtrigger for switching the communication device currently in thededicated transmission mode to the dedicated reception mode, which mayallow one of the other communication devices to switch to the dedicatedtransmission mode.

PTT communication also may utilize a control channel that may carryinformation about each of a plurality of traffic channels. The controlchannel may correspond to an electromagnetic wave, such as a radio wave,of a dedicated frequency. The control channel may provide a data streamincluding, for example, information about one or more of the availabletraffic channels or about the traffic channels in aggregate. Suchinformation may include, for example, the number of available trafficchannels and the frequencies of available traffic channels.Alternatively or additionally, the data stream may include informationabout communication devices associated with the one or more availabletraffic channels including, for example, the number of communicationdevices connected to or waiting for each traffic channel, the types ofcommunication devices connected to or waiting for each traffic channel,the length of time one or more communication devices have been connectedto each traffic channel, whether a communication device connected to aparticular traffic channel is set to the dedicated transmission mode,which communication device is currently set in a dedicated transmissionmode on a particular traffic channel, the length of time a communicationdevice has been set in a dedicated transmission mode on a particulartraffic channel, the length of time a particular traffic channel hasbeen active (e.g., an aggregate length of time that one or morecommunication devices have been set in a dedicated transmission mode ona particular traffic channel), which communication device is currentlyset in a dedicated reception mode on a particular traffic channel,whether each traffic channel is available, and other information aboutthe communication devices connected to the traffic channels.

In implementations of PTT communication utilizing talkgroups, thecontrol channel data stream may include information including, forexample, information identifying whether a traffic channel is assignedto a talkgroup, information identifying traffic channels assigned toparticular talkgroups, and other information about the traffic channelsand any talkgroups to which traffic channels are assigned. Suchinformation may allow communication devices to connect with or remainconnected to talkgroups as the frequencies or traffic channelsassociated with the talkgroups are reallocated and as the communicationdevices move relative to satellites 110 (or as satellites 110 moverelative to the communication devices) and the respective beams thereof,which may, for example, result in handoffs being made between beams,satellites, etc.

As described below in more detail, talkgroups may be characterized aseither active talkgroups (sometimes referred to as “live” talkgroups) orinactive talkgroups (sometimes referred to as “dead” talkgroups). Forexample, active talkgroups may be talkgroups on which activecommunication is currently occurring (e.g., a user is currently speakinginto a communication device connected to a talkgroup and thecommunication device is transmitting the spoken audio in a dedicatedtransmission mode) or on which active communication has occurred withina particular period of time. Similarly, inactive talkgroups may betalkgroups on which active communication is not currently occurring(e.g., no communication devices are connected to the talkgroup andtransmitting in a dedicated transmission mode) or on which activecommunication has not occurred within a particular period of time.

In some instances, a talkgroup may be determined to be active even ifactive communication (e.g., speaking) is not currently occurring (or hasnot occurred within the particular period of time) within the talkgroup.For example, communication devices may determine whether a talkgroup isactive or inactive based on information from the control channelindicating whether one or more traffic channels are currently allocatedto the talkgroup (or have been allocated to the talkgroup) within theparticular period of time, rather than determining whether activecommunication is actually occurring (or has occurred within theparticular period of time). For example, if control channel 0 providesinformation indicating that traffic channel 1 is currently allocated totalkgroup A or has been allocated to talkgroup A within a particularperiod of time (e.g., within the last 10 seconds), then a communicationdevice 150 listening to control channel 0 may determine that talkgroup Ais an active talkgroup. Alternatively, if control channel 0 providesinformation indicating that no traffic channels are currently allocatedto talkgroup A or that no traffic channels have been allocated totalkgroup A within the particular period of time, then a communicationdevice 150 listening to control channel 0 may determine that talkgroup Ais an inactive talkgroup.

In some implementations, traffic channels may be allocated to atalkgroup in response to a request from a communication deviceprovisioned to participate in the talkgroup. For example, if thetalkgroup is inactive, no traffic channels may be currently allocated tothe talkgroup. In response to a communication device that is provisionedto participate in the talkgroup requesting to participate in thededicated transmission mode, one or more traffic channels may beallocated to the talkgroup to enable communications over the talkgroup.Thereafter, traffic channel(s) may be maintained for the talkgroup untilno devices provisioned to participate in the talkgroup have participatedin the talkgroup in the dedicated transmission mode for more than somedefined threshold period of time. After the defined threshold period oftime elapses with no device provisioned to participate in the talkgrouphaving participated in the talkgroup in the dedicated transmission mode,the traffic channel(s) allocated to the talkgroup may be torn down andthe talkgroup may transition back to an inactive status.

In some implementations, data transmitted in the control channel mayexplicitly define whether a talkgroup is active or inactive. Forexample, in some implementations, a centralized entity (e.g., operationhub 130) may determine whether a talkgroup is active or inactive (e.g.,based on whether active communication is occurring or has occurredwithin a defined period of time within the talkgroup) and transmit anindication of whether the talkgroup is active or inactive within thecontrol channel.

A plurality of talkgroups may be available to particular communicationdevices or users. For example, available talkgroups for particularcommunication devices or users may be provisioned by operation hub 130,gateway 135, or a device 120 based on the communication devices' orusers' affiliation with an organization. As an example, one set ofavailable talkgroups may be provisioned for users or devices affiliatedwith a particular branch or division of the U.S. military, while anotherset of available talkgroups may be provisioned for a petroleumprospecting company, and still another set of available talkgroups maybe provisioned for employees or aircraft of an airline. Each set ofavailable talkgroups may include talkgroups that only are accessible(e.g., available) to devices or users associated with the organizationto which the respective set of available talkgroups was provisioned.Relatedly, each device or user associated with a particular organizationto which a set of available talkgroups has been provisioned only may begranted access to a subset of less than all of the available talkgroupsprovisioned for the particular organization. Nevertheless, in someimplementations, multiple different sets of available talkgroups mayutilize common beams and/or traffic channels, but utilization of thebeams and/or traffic channels may be dynamically allocated such thateach individual set of available talkgroups remains accessible only todevices or users associated with the organization to which theindividual set of available talkgroups was provisioned. Further, in someimplementations, each set of available talkgroups may be affiliated withone or more control channels that carry information about such availabletalkgroups. In other implementations, certain talkgroups may only beavailable using a particular access code, for example.

A plurality of communication devices may connect to a control channel,and the data transmitted in the control channel may enable eachcommunication device of the plurality of communication devices (or eachuser thereof) to select a traffic channel to which such communicationdevice may connect and to determine whether such communication devicemay be switched to the dedicated transmission mode at a particularinstant in time. In some implementations, the traffic channel may evenprovide commands or assignments for particular communication devices toconnect with particular traffic channels, such as when a “go topriority” or “go to favorite” feature is activated as discussed below.Further, the control channel or a similar channel may be used forestablishing a connection between a first set of one or morecommunication devices and a second set of one or more communicationdevices through the Internet or another data network.

In some implementations, communication devices may continuously monitorthe control channel. In other implementations, communication devices mayselectively or periodically access the control channel, such as when asetting is changed or requested to be changed in the communicationdevice (e.g., changing or requesting to change between a dedicatedtransmission mode and a dedicated reception mode, changing or requestingto change between talk groups), when the communication device isactivated or removed from a sleep or hibernation state, or atpredetermined or specified intervals of time. In some implementations,the data in the control channel may be continuously transmitted (e.g.,broadcast) to the connected communication devices. In otherimplementations, the data in the control channel may be periodically orintermittently transmitted (e.g., broadcast) to the connectedcommunication devices. Additionally or alternatively, the data in thecontrol channel may be transmitted (e.g., broadcast) to the connectedcommunication devices in response to the occurrence of certain events,such as a new communication device connecting to the control channel orwhen a communication device is activated or switches between thereception mode and the transmission mode, for example.

In satellite-based implementations of PTT communication systems,satellite 110 may generate one or more beams or spot beams that enablethe satellite to transmit and/or receive one or more different datasignals within each beam. Such beam(s) may create a footprint spanning aparticular geographic region of the earth. The footprint may be based onthe characteristics of a satellite 110's antenna, such as the antenna'sgain pattern, transmission power, transmit and/or receive frequencies,and the efficiency or quality of the antenna, for example. In someimplementations, the radius of the particular geographic region withinthe footprint of a particular beam may be about 400 km. In otherimplementations, the radius of the particular region may besubstantially less than or greater than 400 km based on factors such asthe transmission power associated with the particular beam and sourcesof interference (e.g., mountains, trees, buildings, electromagneticradiation sources). In some implementations, each satellite 110 maytransmit a plurality of beams toward the earth and each such beam may bedirected to a different geographic region. Certain satellites 110 maymove relative to the earth over time, such that the geographic regionswithin the footprints of the satellites' 110 beams also change overtime. Other satellites 110 may be geostationary, and the geographicregions within the footprints of the satellites' 110 beams may remainfixed in time or at least fixed for periods of time. Moreover, somesatellites 110 may be configured to direct one or more beams to coverdifferent geographic regions or to change power characteristics, suchthat the size of the geographic regions within the footprint(s) of thebeam(s) may change.

Each beam may include a plurality of carriers (e.g., channels,frequencies), for example. In some implementations, frequencies may beassigned within the full spectrum of the beam, and such frequencies maybe shared by communication devices within the footprint of the beam. Inother implementations, frequencies may be assigned within only a portionof the full spectrum of the beam. Each beam may include one or morecontrol channels (e.g., control channel 0) and a plurality of trafficchannels (e.g., traffic channels 1, 2, 3, and 4). Accordingly, the oneor more control channels and the plurality of traffic channels includedin a particular beam may be available to the communication deviceswithin the footprint of the particular beam. In some instances, however,interference sources may prevent some communication devices within thefootprint of the particular beam from accessing the one or more controlchannels and/or the plurality of traffic channels in the particularbeam.

In some implementations, beams from different satellites may createfootprints that overlap with one another. In such cases, eachcommunication device in such an overlapping region may only receiveinformation from one control channel at a time. Consequently, thecommunication devices may be configured to select between the controlchannels associated with overlapping beams based on certain criteria.Such criteria may include, for example, one or more of the relativestrength of the signal received from each beam (e.g., there may be apreference to select the control channel corresponding to the beam witha higher strength), whether the strength of the control channelcurrently being monitored is less than or equal to a particular signallevel (e.g., there may be a preference to stay connected with thecurrent beam until the signal strength of the beam becomes too low), anda determination of whether the communication device is currentlycommunicating with other communication devices within the footprint ofone of the beams (e.g., there may be a preference to stay connected withthe current beam to maintain uninterrupted communication with the othercommunication devices).

FIG. 2 shows a schematic of one example of a satellite-basedimplementation of a PTT system. As shown in FIG. 2, each ofcommunication devices 150 may monitor control channel 0. Somecommunication devices 150, such as communication devices 150 a and 150b, may be set to transmit or receive communications via trafficchannel 1. Other communication devices 150, such as communication device150 c, may be set to transmit or receive communications via trafficchannel 2. Still other communication devices 150, such as communicationdevice 150 d, may be set to transmit or receive communications viatraffic channel 3. Additional communication devices 150, such ascommunication devices 150 e and 150 f, may be set to transmit or receivecommunications via traffic channel 4. Certain communication devices 150,such as communication device 150 g, may not be set to transmit orreceive communications via any of traffic channels 1-4. Furthermore, thesettings of communication devices 150 a-g may be changed, such that oneor more of communication devices 150 a-g may be reset to transmit orreceive communications via different ones of traffic channels 1-4 thanthose shown in FIG. 2.

In some implementations, communication devices may monitor the controlchannel to determine traffic channels that are available for a talkgroup(e.g., traffic channels without current communication activity such asconnected devices or active communication transmissions from devices setin a dedicated transmission mode). When a communication device is set toa particular talkgroup, the communication device may either assign anavailable traffic channel to the particular talkgroup or identify atraffic channel currently assigned to the particular talkgroup.Thereafter, the communication device may begin transmitting or listeningon the traffic channel assigned to the talkgroup set on thecommunication device.

Referring to FIG. 2, communication devices 150 a and 150 b may both beparticipating in the same talkgroup, for example. Moreover, each ofcommunication devices 150 a-150 g may be provisioned to participate in aplurality of talkgroups, such that communication devices 150 a-150 g mayswitch back and forth between the different talkgroups within which theyare provisioned to participate. For example, communication device 150 amay be provisioned to participate in a talkgroup currently active ontraffic channel 4 and, consequently, may switch into that talkgroup tocommunicate with communication devices 150 e and 150 f.

An example of a process of establishing communication via a talkgroup isshown in FIG. 3. In S301, a communication device may be set to aparticular talkgroup, such as a talkgroup A, for example. Thereafter, inS305 the communication device may determine which traffic channel to useto connect the communication device to talkgroup A. For example, thecommunication device may analyze the information from a control channel,such as control channel 0, to determine if a traffic channel already hasbeen assigned to talkgroup A (e.g., because other devices are currentlyconnected to talkgroup A or communicating in talkgroup A). If a trafficchannel already has been assigned to talkgroup A, the communicationdevice may use the information from control channel 0 to determine whichtraffic channel is currently associated with talkgroup A. If a trafficchannel has not already been assigned to talkgroup A, the communicationdevice may request that a traffic channel be assigned to talkgroup A.After determining which traffic channel is associated with talkgroup Ain S305, the communication device may connect to the assigned trafficchannel in S309 and may begin transmitting or listening within talkgroupA.

Operation hub 130, gateway 135, or a device 120 may be responsible forassociating a particular traffic channel with talkgroup A andtransmitting this information out through control channel 0 to bereceived by communication devices 150, for example. Consequently, thisinformation may be added to the control channel and the control channelmay include information identifying the particular traffic channelassigned to talkgroup A. This information may be used by othercommunication devices when such communication devices perform S305 afterbeing set to talkgroup A in S301.

Communication devices may disconnect from a talkgroup by switching toanother talkgroup, entering a sleep or hibernation mode, or beingdeactivated, for example. Accordingly, once all of the devicespreviously connected to a particular talkgroup disconnect from theparticular talkgroup or when no communication is currently beingperformed via the particular talk group (e.g., there are no devicestransmitting in a dedicated transmission mode via the particulartalkgroup or no devices have transmitted in a dedicated transmissionmode via the particular talkgroup for a defined period of time), thetraffic channel assigned to the particular talkgroup may becomeavailable for use by other talkgroups or for other communicationmethods. In some implementations, there may be a predetermined orselectable delay period between the time when all of the devices havedisconnected from the particular talkgroup or the time whencommunication via the particular talkgroup has terminated and the timewhen the traffic channel assigned to the particular talkgroup becomesavailable for use by other talkgroups (e.g., 1 second, 5 seconds, 1minute, 5 minutes). When a delay period exists, control channel 0 mayalso wait for the delay period before providing information that thetraffic channel previously assigned to the particular talkgroup isavailable and that the particular talkgroup currently is notestablished.

In the manner described above, traffic channels may be dynamicallyallocated to talkgroups to efficiently reduce instances in which trafficchannels are unused and to reduce the duration of such lack of use. Asan additional benefit, frequently cycling talkgroups through differenttraffic channels may provide more secure and/or private communicationsthan static traffic channels.

Users of PTT systems may desire to simultaneously monitor, participatein, and/or manage a plurality of talkgroups. In certain implementationsof satellite-based and other PTT systems, such simultaneous monitoring,participation, and/or managing of talkgroups may be implemented by amanagement center. In such implementations, the management center maysimultaneously listen to all talkgroups within the management center'sresponsibility (e.g., by simultaneously playing the audio signals beingtransmitted by all talkgroups).

As described above with reference to FIG. 2, communication devices maybe provisioned to be able to participate in a plurality of differenttalkgroups. Accordingly, it may be advantageous for a communicationdevice to automatically scan or cycle through multiple differenttalkgroups for which the communication device is provisioned toparticipate without requiring user interaction with the communicationdevice to instruct the device to transition from talkgroup to talkgroup.For example, it may be advantageous for a communication device toautomatically scan or cycle through those talkgroups for which thecommunication device is provisioned to participate that are currentlyactive. Consequently, in some implementations of satellite-based andother PTT systems, communication devices may be configured to perform ascanning function. Such a scanning function may be activated when thecommunication device is set to a scanning mode, for example. Inperforming the scanning function, the communication device may initiallyset itself to the dedicated reception mode and to a particulartalkgroup, such as talkgroup A. The communication device may remain setto the particular talkgroup for a predetermined or selected period oftime (e.g., 1 second, 5 seconds, 1 minute, 5 minutes) to allow thecommunication device's user to listen for communication within theparticular talkgroup. In certain implementations, the predetermined orselected period of time may be set by or changed by a user. In someimplementations, the predetermined or selected period of time may bepredefined and not configurable by the user. After the predetermined orselected period of time has lapsed, the communication deviceautomatically may set itself to another talkgroup, such as talkgroup B,without any input from a user of the communication device and may remainset to the other talkgroup for the predetermined or selected period oftime. After the predetermined or selected period of time has lapsedagain, the communication device automatically may set itself to yetanother talkgroup, such as talkgroup C. This scanning process may beiteratively and automatically repeated for all of the other talkgroupsbeing monitored and/or managed by the user of the communication device.Further, once the scanning process has been repeated for all of thetalkgroups being monitored and/or managed by the user of thecommunication device, the scanning process may be continuously repeatedfor all of the relevant talkgroups until the scanning process isterminated by a trigger, such as deactivation of the communicationdevice, setting the communication device to a mode other than thescanning mode, or performing scanning for a predetermined or selectedperiod of time, for example. The communication device may perform theabove-described scanning function or process when set to a scan orscanning mode, for example.

While using a management center to simultaneously listen to alltalkgroups within the management center's responsibility and/or using acommunication device to scan all of the talkgroups being monitoredand/or managed by the user of the communication device, as describedabove, may enable complete and (quasi-)simultaneous monitoring of allrelevant talkgroups, significant resources (e.g., time, manpower,computational power) may be wasted monitoring talkgroups on which thereis no activity (e.g., on which no communication is currently occurring).Moreover, in some instances, important activity within one talkgroup maybe missed while resources are busy listening to another talkgroupwithout activity, such as, for example, during a scanning process inwhich the communication device remains set to a talkgroup withoutactivity for the predetermined or selected period of time while activityis simultaneously occurring on another one of the other talkgroups.

FIG. 4 shows a schematic illustration of a communication device 150configured to implement one or more dynamic scanning techniquesdisclosed herein. Communication device 150 may include a centralprocessing unit (“CPU”) 401, a memory 402, an input or output (“I/O”)device 403, a display device 404, and an operation device 405.

Memory 402 may store computer-readable instructions that may instructCPU 401 to perform certain processes. Memory 402 may comprise, forexample, RAM, ROM, EPROM, EEPROM, Flash memory, or any suitablecombination thereof. When executed by CPU 401, the computer-readableinstructions stored in memory 402 may instruct CPU 401 to operate as oneor more devices configured to perform particular functions. In certainimplementations, memory 402 may store computer-readable instructions forperforming any and all functions or processes described herein, and CPU401 may execute such computer-readable instructions and operate as oneor more devices configured to perform or control such functions orprocesses.

CPU 401 may execute the computer-readable instructions stored in memory402, and the computer-readable instructions may instruct CPU 401 toperform or control a plurality of processes including, but not limitedto, one or more of the processes described with respect to FIGS. 3, 5,and 6 and any other process described herein. Accordingly, CPU 401 maybe configured to perform a variety of processes, as discussed in moredetail below. CPU 401 may be, for example, a processor, a controller, anapplication specific integrated circuit (“ASIC”), or a system comprisinga plurality of processors, controllers, or ASICs.

I/O device 403 may receive one or more of data from network 100, datafrom one or more other devices connected to communication device 150,and input from a user and provide such information to CPU 401 and/ormemory 402. I/O device 403 may transmit data to network 100, maytransmit data to one or more other devices connected to communicationdevice 150, and may transmit or otherwise render information to a user(e.g., display the information or indicators thereof, provide audibleindications of such information). I/O device 403 may include, forexample, one or more of a transceiver, a modem, a network card, atransmitter, a receiver, a microphone, a speaker, an antenna, alight-emitting diode (“LED”), a display device, or any other deviceconfigured to provide or receive information.

Display device 404 may be any device that may display information (e.g.,to a user), such as, for example, a liquid crystal display, an organicLED display, a touchscreen, a projector, augmented reality glasses, orany other form of display configured to display information. As shown inFIG. 4, display device 404 may display a list of talkgroups 408 thatcommunication device 150 may access (e.g., talkgroups that communicationdevice 150 is provisioned to be able to access). In the exampleconfiguration shown in FIG. 4, the list of talkgroups 408 includestalkgroups A, B, C, D, and E. Nevertheless, the list of talkgroups 408may include fewer talkgroups or additional talkgroups than shown in FIG.4. In some implementations, the list of talkgroups 408 may not fitcompletely on display device 404, and a user may use operation device405 to scroll to the other talkgroups in the list or to otherwiseinstruct display device 404 to display the remaining talkgroups.

Further, display device 404 may display one or more informationalindicators associated with talkgroups in the list of talkgroups 408.Such informational indicators may include, for example, an indicator 409indicating that a talkgroup (e.g., talkgroup A) is the home talkgroupfor communication device 150 (as described in more detail below), anindicator 410 indicating that a talkgroup (e.g., talkgroup B) is thepriority talkgroup for communication device 150 (as described in moredetail below), an indicator 411 indicating that one or more talkgroups(e.g., talkgroups A, B, and D) are active, or an indicator 412indicating that a particular talkgroup (e.g., talkgroup D) is currentlyselected (e.g., meaning that the particular talkgroup is the talkgroupin which communication device 150 presently is participating) or isindicated for selection.

Although represented by words and symbols in FIG. 4, each of indicators409, 410, 411, and 412 may take the form of, for example, one or more ofdifferent shading, different colors, bold typeface, different typefaceor font, different-sized typeface, identifying text (e.g., the word“ACTIVE”), or any other form of graphical or visual differentiation. Forexample, active talkgroups in the list of talkgroups 408 may bedifferentiated from inactive talkgroups in the list of talkgroups 408 byflashing the display of the active talkgroups in the list of talkgroups408 on and off (e.g., according to some predefined duty cycle) whilestatically displaying inactive talkgroups in the list of talkgroups 408.

In some implementations, inactive talkgroups may be identified byinformational indicators (not shown) instead of or in addition to activetalkgroups being identified by informational indicators. For example,informational indicators for inactive talkgroups may include one or moreof different shading, different colors, bold typeface, differenttypeface or font, different-sized typeface, identifying text (e.g., theword “INACTIVE”), flashing the display of the inactive talkgroups in thelist of talkgroups 408 on and off (e.g., according to some predefinedduty cycle), or any other form of graphical or visual differentiation.For example, active talkgroups in the list of talkgroups 408 may bedifferentiated from inactive talkgroups in the list of talkgroups 408 bydifferent flashing patterns or distinctively different textualidentifiers.

Display device 404 also may display a join button 413 and a back button414. Join button 413 may be selected after selecting a talkgroup fromthe list of talkgroups 408 to set communication device 150 to theselected talkgroup. When back button 414 is selected, display device 404may display previously-displayed content that may be different from thelist of talkgroups 408 and indicators 409-412.

As shown in the example configuration of FIG. 4, indicator 409 indicatesthat talkgroup A is a home talkgroup. A home talkgroup may be atalkgroup that a particular set of users within an organization areencouraged to use to communicate when using network 100. For example,talkgroup A may be a talkgroup associated with emergency medicalservices in a particular city and talkgroup C may be a talkgroupassociated with crime enforcement in the particular city. Accordingly,talkgroup A may be assigned as a home talkgroup for emergency medicalresponders who may be encouraged to use talkgroup A for communication.Similarly, talkgroup C may be assigned as a home talkgroup for policeofficers who may be encouraged to use talkgroup C for communication. Inparticular implementations, the emergency medical responders and policeofficers may freely utilize the other talkgroups, including talkgroupsdesignated as the home talkgroup for other groups of users (e.g., policemay communicate using talkgroup A). In some implementations, however,only the group of users to which a particular talkgroup is assigned as ahome talkgroup may communicate using the particular talkgroup (e.g., insuch implementations, police may not communicate using talkgroup A).

As shown in the example configuration of FIG. 4, indicator 410 indicatesthat talkgroup B is a priority talkgroup. Talkgroup B may be selectedand used in a manner similar to talkgroups A and C-D. However, whenTalkgroup B is activated by a communication device, other devices forwhich Talkgroup B has been assigned as a priority talkgroup, including,for example, communication device 150, may be triggered to connect toTalkgroup B (e.g., in dedicated reception mode), so that the user whoactivated Talkgroup B may transmit information to the other devices forwhich Talkgroup B has been assigned as the priority talkgroup.

In some implementations, the list of talkgroups 408 may include onlyactive talkgroups, and inactive talkgroups may be omitted from the listof talkgroups 408 until such inactive talkgroups become active. In someimplementations, the option to display only active talkgroups may be anoption selectable by a user. In other implementations, only activetalkgroups may be shown when communication device 150 is set to acertain mode, such as a scanning mode. In certain implementations, forexample, communication device 150 may make a particular sound, orproduce some other apparent notification when a talkgroup becomes activeor inactive. Further distinctions between active and inactive talkgroupsare described in detail below with respect to FIG. 5.

In certain implementations, communication device 150 may be set to ascanning mode. Such a scanning mode may, for example, causecommunication device 150 to cycle through each talkgroup (or activetalkgroup) that communication device 150 is provisioned to access. Whencommunication device 150 is set to such a scanning mode, indicator 412may indicate the talkgroup currently being monitored in the scanningprocess. After the predetermined or selected period of time ends andcommunication device 150 transitions to another active talkgroup withinthe scanning process, display device 404 also may change to indicate thenew talkgroup being monitored with indicator 412.

Display device 404 also may display, for example, an indication ofwhether communication device 150 is in a dedicated reception mode, adedicated transmission mode, or a scanning mode and/or an indication ofwhether communication device 150 is receiving or transmittingcommunications. Additionally or alternatively, display device 404 maydisplay other content including a plurality of selection options, suchas options for selecting one or more of: a scanning mode or function; adedicated reception mode; a dedicated transmission mode; one or more“favorite” talkgroup or frequently-used talkgroups; a prioritytalkgroup; a home talkgroup; particular talkgroups to include in ascanning process; or other settings associated with talkgroups,associated with network 100, or associated with communication device150. In particular implementations, display device 404 may display othertalkgroup indicators, such as indicators indicating inactive talkgroupsor favorite talkgroups. In some implementations, display device 404 maydisplay other content (e.g., either with the list of talkgroups 408similar to indicators 409-411 or separate from list of talkgroups 408)such as additional information from control channel 0 including, forexample, the number of communication devices connected to one or moreindividual talkgroups, information about current or past communicationdevices set to the dedicated transmission mode in connection with one ormore individual talkgroups, the length of time that individualtalkgroups have been active or inactive, or other useful informationassociated with individual talkgroups.

In some implementations, operation device 405 may permit a user tophysically input instructions into communication device 150, includingselections of items on display device 404. As shown in FIG. 4, operationdevice 405 may include a plurality of buttons 406 and 407 that may beused to navigate (e.g., navigation buttons 406) and select (e.g.,selection button 407) content displayed by display device 404. Inaddition or in alternative to navigation buttons 406 and selectionbutton 407, operation device 405 may include dedicated function buttons,such as call buttons, end buttons, menu buttons, mode switch buttons, ascanning mode button, a reception mode button, or a transmission modebutton, or character buttons, such as numbers, letters, punctuationmarks, and other symbols that may be used to enter information orcommands into communication device 150. In certain implementations,operation device 405 may include physical buttons that requiredepression, switching, flipping, sliding, turning, or some othermechanical operation. In some implementations, operation device 405 mayinclude graphical buttons that may be activated by a touch sensor. Instill other implementations, operation device 405 may be a touchscreenintegrated directly within display device 404 that may allow a user toselect content on display device 404 by touching (or otherwiseinteracting with) an area including or near the desired selection item.

In the example configuration shown in FIG. 4, a user may instructcommunication device 150 to join or connect to a particular talkgroup byselecting the particular talkgroup and the join button 413 on displaydevice 404 using operation device 405. The process of joining,connecting or otherwise enabling a communication device to participatein a particular talkgroup (e.g., in one or both of a dedicatedtransmission mode and a dedicated reception mode) may be referred toherein as setting the communication device to the particular talkgroup.Additionally or alternatively, in some implementations, the process ofjoining or connecting to a particular talkgroup may be performed byselecting the particular talkgroup on display device 404 and activatinga dedicated join button on operation device 405. In otherimplementations, such as implementations in which operation device 405is a touchscreen integrated directly within display device 404, a usermay instruct communication device 150 to join or connect with aparticular talkgroup by touching (or otherwise interacting with) an areaincluding or near the desired talkgroup, in the list of talkgroups 408for example. After the communication device has joined or connected to aparticular talkgroup, a variety of different mechanisms may be availableto enable the communication device to “take the floor,” or enter thededicated transmission mode, within the talkgroup. For example, in someimplementations, the communication device may request to “take thefloor,” or enter the dedicated transmission mode, in response to thedepression of a specified button on the communication device and maymaintain in the dedicated transmission mode while the button remainsdepressed.

Examples of a dynamic scanning process performed by a device, such ascommunication device 150, now are disclosed with respect to FIG. 5 andFIG. 6.

FIG. 5 shows an example of a process of using information from a controlchannel to determine which talkgroups accessible to a communicationdevice 150 (e.g., talkgroups that communication device 150 isprovisioned to access) are active and which talkgroups accessible to acommunication device 150 are inactive. In S501, CPU 401 may receive aninstruction to enter a scanning mode. For example, a user of device 150may interact with communication device 150 to input an instruction toenter the scanning mode. After receiving the instruction to enter thescanning mode, CPU 401 may retrieve information from a control channel,such as control channel 0, in S503. For example, in particularimplementations, CPU 401 may retrieve information from control channel 0indicating which, if any, talkgroups accessible to the communicationdevice 150 are currently active. For instance, CPU 401 may retrieveinformation from control channel 0 indicating whether or not any otherdevices are communicating in a dedicated transmission mode on one ormore of the talkgroups accessible to communication device 150. Theretrieved information might indicate that other devices are currentlycommunicating in a dedicated transmission mode in each of talkgroups A,B, and D, for example. As an alternative to retrieving information fromcontrol channel 0 indicating whether any other devices are communicatingin a dedicated transmission mode on one or more of the talkgroupsaccessible to communication device 150, CPU 401 may retrieve informationfrom control channel 0 indicating whether traffic channels are currentlyallocated to any of the talkgroups that are accessible to communicationdevice 150.

In S505, CPU 401 may select one of the talkgroups accessible tocommunication device 150. For example, CPU 401 may select the firsttalkgroup included in the list of talkgroups (e.g., talkgroup A).Alternatively, CPU 401 could use some other criteria to pick the initialtalkgroup in S505. CPU 401 subsequently proceeds to S507, in which CPU401 determines whether the currently selected talkgroup is active orinactive based on the information retrieved from control channel 0. Forexample, in particular implementations, if talkgroup A is the currentlyselected talkgroup, CPU 401 may determine that talkgroup A is active ifthe information retrieved from control channel 0 in S503 indicates thata device is currently communicating in a dedicated transmission mode intalkgroup A. In contrast, CPU 401 may determine that talkgroup A isinactive if the information retrieved from control channel 0 in S503does not indicate that a device is currently communicating in adedicated transmission mode in talkgroup A. In alternativeimplementations of S507, CPU 401 may determine that the currentlyselected talkgroup is active (S507: Yes) if the information retrievedfrom control channel 0 in S503 indicates that a communication device hasbeen continuously communicating in a dedicated transmission mode in thecurrently selected talkgroup for at least a predetermined length of time(e.g., a particular device has been transmitting on talkgroup A for atleast 5 seconds), and may otherwise determine that the currentlyselected talkgroup is inactive. In other alternative implementations ofS507, CPU 401 may determine that the currently selected talkgroup isactive (S507: Yes) if the information retrieved from control channel 0in S503 indicates that a plurality of devices in aggregate have beencontinuously communicating in a dedicated transmission mode in thecurrently selected talkgroup for at least a predetermined length of time(e.g., a first communication device and a second communication devicehave been transmitting on talkgroup A for at least an aggregate time of5 seconds), and may otherwise determine that the currently selectedtalkgroup is inactive. In other implementations of S507, CPU 401 maydetermine that the currently selected talkgroup is active (S507: Yes) ifthe information retrieved from control channel 0 in S503 indicates thata communication device has communicated in a dedicated transmission modein the currently selected talkgroup within a predetermined period oftime (e.g., a particular device has transmitted on talkgroup A withinthe last 5 seconds), and may otherwise determine that the selectedtalkgroup is inactive. In still other implementations, CPU 401 maydetermine that the currently selected talkgroup is active (S507: Yes) ifthe information retrieved from control channel 0 in S503 indicates thata traffic channel is currently allocated to the currently selectedtalkgroup (or has been allocated to the currently selected talkgroupwithin a particular period of time), and may otherwise determine thatthe currently selected talkgroup is inactive.

If CPU 401 determines that the currently selected talkgroup is active(S507: Yes), CPU 401 may proceed to S509 and record the selectedtalkgroup as being active (e.g., by storing an indicator in memory 402indicating that the selected talkgroup is active). On the other hand, ifCPU 401 determines that the currently selected talkgroup is inactive(S507: No), CPU 401 may proceed to S511 and record the selectedtalkgroup as being inactive (e.g., by storing an indicator in memory 402indicating that the selected talkgroup is inactive). After performingeither of S509 and S511, CPU 401 may proceed to S513 and determinewhether other talkgroups accessible to communication device 150 thathave not been assessed as active or inactive during the current cycleremain. If CPU 401 determines that other talkgroups accessible tocommunication device 150 have not been assessed as active or inactiveduring the current cycle (S513: No), CPU 401 may proceed to S515 andselect one of the talkgroups accessible to communication device 150 thathas not yet been assessed in the current cycle. For example, iftalkgroup A was previously selected in S505, assessed in S507, andmarked in one of S509 and S511, talkgroups B-E may remain unassessed inthe current cycle. Accordingly, CPU 401 may select one of talkgroups B-Ein S515. As an example, CPU 401 may select talkgroup B because talkgroupB follows talkgroup A in the list of talkgroups 408. After S515, CPU 401may return to S507 and compare the talkgroup selected in S515 with theinformation retrieved from control channel 0. Accordingly, processesS507-S515 may be repeated until all of the talkgroups that areaccessible to communication device 150 have been assessed during thecurrent cycle. When all of the talkgroups that are accessible tocommunication device 150 have been assessed as active or inactive duringthe current cycle (S513: Yes), CPU 401 may proceed to S517 and controldisplay device 404 to display the list of talkgroups 408 with indicators411 indicating which of the talkgroups available to communication device150 are active. For example, after a cycle has concluded in which eachof talkgroups A-E has been assessed as active or inactive and whichresulted in talkgroups A, B and D being determined to be active whiletalkgroups C and E were determined to be inactive, CPU 401 may controldisplay device 404 to display the list of talkgroups 408 includingindicators 411 indicating that each of talkgroups A, B, and D is active,as shown in FIG. 4. After S517, CPU 401 may return to S503 and beginanother cycle of processes S503-S517 to determine if the active/inactivestatus of any of the talkgroups available to communication device 150has changed. Accordingly, in particular implementations, S503-S517 maybe continuously performed while communication device 150 is set to ascanning mode to continuously determine the active/inactive status ofthe talkgroups accessible to communication device 150. In otherimplementations, the process may proceed from S517 to S503 only after atriggering event occurs such as, for example, a selection oncommunication device 150 to refresh the information about the availabletalkgroups or after communication device 150 has cycled through all ofthe active talkgroups during one scanning cycle.

In some implementations, S505, S513, and S515 may be omitted. Inparticular, CPU 401 may receive information about all of the availabletalkgroups from control channel 0 in S503 and may simultaneously (e.g.,in parallel) identify and mark all of the active and inactive talkgroupsamong the available talkgroups in S507, S509, and S511. Thereafter, CPU401 may proceed to S517 and display the list of available talkgroupswith information indicating which talkgroups are active or inactive.

In some implementations, control channel 0 may not include informationabout talkgroups accessible to communication device 150 for whichtraffic channels are not currently allocated. In such implementations,CPU 401 may receive information about only a subset of the talkgroupsaccessible to communication device 150 from control channel 0 in S503(i.e., CPU 401 may receive information about only those talkgroupsaccessible to communication device 150 for which traffic channelscurrently are allocated). In such implementations, CPU 401 may determinein S507 that such talkgroups that are accessible to communication device150 but for which no information is included in control channel 0 areinactive.

In some implementations, CPU 401 may begin performing S503-S517 withoutwaiting for S501 to occur. For example, CPU 401 may begin performingS503 immediately after communication device 150 is powered on or awokenfrom a sleep or hibernation mode. Consequently, S503-S515 may runcontinuously in the background while communication device 150 is poweredon and not in a sleep or hibernation mode, so that communication device150 and a user thereof will be able to determine which talkgroups areactive anytime when communication device 150 is active. In certainimplementations, S517 may be omitted unless a user uses operation device405 to request display device 404 to display the list of talkgroups 408or indicators 411. Moreover, in particular implementations, informationmay be retrieved from control channel 0 each time a determination ofactive/inactive status is made in S507, such that information isretrieved from control channel 0 each time the status of a talkgroup isdetermined, rather than being retrieved once for every cycle through allof the available talkgroups.

FIG. 6 shows an example of a process of performing a dynamic scanningprocess. In S601, CPU 401 may receive an instruction to enter a scanningmode. Accordingly, the dynamic scanning process shown in FIG. 6 may beperformed in parallel (e.g., simultaneously) with the process of usinginformation from a control channel to determine which talkgroups thatare accessible to a communication device 150 are active and which areinactive shown in FIG. 5. S601 may be the same process as S501 describedabove.

After receiving the instruction to enter the scanning mode, CPU 401 mayset communication device 150 to a dedicated reception mode in S603. InS605, CPU 401 may determine whether any of the talkgroups accessible tocommunication device 150 are currently active. CPU 401 may make thisdetermination based on the most recent information regarding theactive/inactive status of the talkgroups accessible to communicationdevice 150 stored in memory 402 (e.g., in S509 or S511). If CPU 401determines that none of the talkgroups accessible to communicationdevice 150 are currently active (S605: No), CPU 401 may continuouslyrepeat S605 until one of the talkgroups becomes active. Alternatively,if CPU 401 determines that at least one of the talkgroups accessible tocommunication device 150 is currently active (S605: Yes), CPU 401 mayproceed to S607 and set the talkgroup of communication device 150 to oneof the active talkgroups (e.g., by connecting communication device 150to the traffic channel assigned to the selected talkgroup).

CPU 401 may select the first active talkgroup to which communicationdevice 150 is to be set based on one or more criteria. For example, CPU401 may select the highest priority of the active talkgroups as theinitial active talkgroup to which the communication device 150 is set.Higher priority talkgroups, for example, may be talkgroups within a setof talkgroups that are accessible to communication device 150 that havebeen defined as having a higher priority than other talkgroups that areaccessible to communication device 150. For example, in a set oftalkgroups accessible to a communication device 150 assigned to amunicipal employee, certain talkgroups associated with emergencyresponse or for receiving communications from important individuals maybe defined as being higher priority than talkgroups associated withmaintenance requests or custodial services. In another exampleimplementation, CPU 401 may select the first active talkgroup listed inthe list of talkgroups 408 (e.g., talkgroup A as illustrated in FIG. 4)as the active talkgroup to which communication device 150 is to be set.

After selecting one of the active talkgroups and setting that talkgroupas the talkgroup for communication device 150, communication device 150may remain connected to the selected talkgroup for a predeterminedperiod of time, thereby enabling a user of communication device 150 tolisten to communications made via the talkgroup for the predeterminedperiod. In some implementations, this predetermined period may be thesame for all talkgroups. In other implementations, the length of thepredetermined period may be based on characteristics of a particulartalkgroup, such as, for example, the priority of the talkgroup or therelationship between the talkgroup and the user. For example, if theuser is an emergency responder, the predetermined period may be longerfor a talkgroup associated with a dispatcher than the predeterminedperiod for a talkgroup associated with facilities services. Further, thepredetermined period may be set by the user in some implementations.

In certain implementations, CPU 401 may set the talkgroup of acommunication device 150 to a particular talkgroup in the manner shownin FIG. 3. For example, when CPU 401 sets talkgroup A as the talkgroupfor communication device 150 in S301, CPU 401 may obtain informationfrom control channel 0 that identifies which traffic channel iscurrently allocated to talkgroup A in S305. Thereafter, CPU 401 may tunecommunication device 150 to the identified traffic channel (e.g.,frequency) and establish communication with talkgroup A (e.g., listen totalkgroup A) in S309. For example, if the information from controlchannel 0 indicates that traffic channel 1 is currently allocated totalkgroup A in S305, CPU 401 may tune communication device 150 totraffic channel 1 to establish communication with talkgroup A.

In S609, CPU 401 may determine whether the predetermined period of timehas lapsed. If the predetermined period of time has not lapsed (S609:No), S609 may be performed continuously until the predetermined periodof time has lapsed. If the predetermined period of time has lapsed(S609: Yes), CPU 401 may determine if any other talkgroups accessible tocommunication device 150 are currently active in S611. S611 may besubstantially similar to S605, except that S611 may not take intoconsideration the currently set talkgroup. If CPU 401 determines thatnone of the other talkgroups accessible to communication device 150 arecurrently active (S611: No), CPU 401 may proceed to S613 and determinewhether the currently set talkgroup is still active based on the mostrecent information regarding the active/inactive status of thetalkgroups accessible to communication device 150 (e.g., stored inmemory 402 in S509 or S511). If CPU 401 determines that the currentlyset talkgroup is still active (S613: Yes), CPU 401 may proceed to S615and reset the predetermined time. Thereafter, CPU 401 may return to S609and begin determining whether the reset predetermined time has lapsed.In this manner, communication device 150 may remain set to the onlyavailable active talkgroup.

If CPU 401 determines that the currently set talkgroup is no longeractive (S613: No), CPU 401 may proceed to S617 and control displaydevice 404 or I/O device 403 to provide the user with a notificationindicating that no talkgroups accessible to communication device 150 arecurrently active. CPU 401 subsequently may return to S605 andperiodically check to see if any of the talkgroups accessible tocommunication device 150 has become active.

Returning to S611, if CPU 401 determines that one or more of the othertalkgroups accessible to communication device 150 are currently active(S611: Yes), CPU 401 may proceed to S619 and set the talkgroup ofcommunication device 150 to one of the other active talkgroups. S619 maybe substantially similar to S607. For example, referring to FIG. 4, CPU401 may select talkgroup B because talkgroup B is the next activetalkgroup included in the list of talkgroups 408. After selecting one ofthe other active talkgroups and setting that talkgroup as the talkgroupfor communication device 150, communication device 150 may remainconnected to the selected talkgroup for a predetermined period of time,thereby enabling a user of communication device 150 to listen tocommunications made via the talkgroup for the predetermined period oftime.

Thereafter, CPU 401 may proceed to S621, in which CPU 401 may determinewhether the predetermined period of time has lapsed. S621 may besubstantially similar to S609. If the predetermined period of time hasnot lapsed (S621: No), S621 may be performed continuously until thepredetermined period of time has lapsed. If the predetermined period oftime has lapsed (S621: Yes), CPU 401 may return to S611 and determine ifany other talkgroups accessible to communication device 150 arecurrently active and the dynamic scanning process may iteratively repeatuntil CPU 401 receives an instruction to exit scanning mode. In certainimplementations of the process shown in FIG. 6, after all of the activetalkgroups that are accessible to communication device 150 have beencycled through, CPU 401 may return to the first talkgroup set during thescanning process and start cycling through all of the active talkgroupsthat are accessible to communication device 150 yet again.

In particular implementations, a priority talk group may be establishedfor communication device 150. When communication device 150 determinesthat the priority talkgroup is active (e.g., via information fromcontrol channel 0), the scanning process may be automaticallyinterrupted, and CPU 401 may set communication device 150 to thepriority talkgroup immediately, such that the user immediately istransitioned to listening to the priority talkgroup.

In some implementations, a user may turn off scanning mode and end thescanning process by making an affirmative selection of the talkgroupcurrently indicated by indicator 412 using operation device 405 and/orby requesting to enter the dedicated transmission mode within thetalkgroup (e.g., by depressing a “talk” button). In suchimplementations, communication device 150 may remain in the currentlyselected talkgroup instead of continuing the dynamic scan of activetalkgroups.

In certain implementations, the user may use operation device 405 toselect particular talkgroups to include or ignore when performing ascanning process. When a particular talkgroup is not included in thegroup of talkgroups selected for scanning or is selected as a talkgroupto be excluded when performing the scanning process, the particulartalkgroup may not be scanned during the scanning process (e.g., theparticular talkgroup may not be considered at S605 and/or S611), and thecommunication device 150 may not be set to the particular talkgroupduring the scanning process even if the control channel indicates thatthe particular talkgroup is active. Further, such an excluded ornon-included talkgroup may not be displayed in the list of talkgroups408 when communication device 150 is performing the scanning process. Insome implementations, an excluded talkgroup may remain excluded only forthe duration of the current period of active activity. In other words,after the excluded talkgroup transitions from active to inactive, theexclusion selection will disappear. Consequently, when thepreviously-excluded talkgroup becomes active again, thepreviously-excluded talkgroup may no longer be excluded from thescanning process unless the user again selects the previously-excludedtalkgroup for exclusion.

In particular implementations, a user may specify (e.g., usinginstructions input via operation device 405) the predetermined time thatcommunication device 150 spends monitoring a particular talkgroup duringthe scan process. The user may specify different predetermined times fordifferent talkgroups. For example, referring to FIG. 4, the user mayspecify a waiting time of 5 seconds for talkgroup A and a waiting timeof 30 seconds for talkgroup B. Consequently, during the scanningprocess, if talkgroups A and B both were active, communication device150 would be set to talkgroup A for 5 seconds and would subsequently beset to talkgroup B for 30 seconds before being set to another talkgroup.In other implementations, the predetermined time spent monitoring atalkgroup during the scanning process may be based on a priority levelof such talkgroup. For example, a higher-priority talkgroup, such as thepriority talkgroup or the home talkgroup, may be associated with alonger monitoring time (e.g., 15 seconds) than the monitoring timeassociated with a lower-priority talkgroup (e.g., 5 seconds) during eachiteration of a scan. Thus, communication device 150 may remain set to ahigher-priority talkgroup for a longer period of time than communicationdevice 150 remains set to a lower-priority talkgroup during the scanningprocess. Higher-priority talkgroups (e.g., talkgroups for emergencyresponse or for communication from important individuals in anorganization) may be more important to particular users or toorganizations managing talkgroups than lower-priority talkgroups (e.g.,talkgroups for maintenance requests or custodial services). In someimplementations, users may set the priority of certain talkgroups or mayrank the importance of talkgroups.

In some implementations, CPU 401 may also determine whether a currentlyset talkgroup is still active when making the determinations regardingtime in S609 and S621. In some implementations, for example, CPU 401 maymonitor the elapsed time since the most-recent active communication onthe talkgroup (e.g., since a member of the talkgroup was in thededicated transmission mode within the talkgroup) and may determine thatthe currently set talkgroup is no longer active if there has not been anactive communication on the talkgroup for a predetermined period of time(e.g., 10 seconds). In other implementations, for example, CPU 401 maycontinue obtaining information from control channel 0 and may determinethat the currently set talkgroup is no longer active if the informationfrom control channel 0 indicates that no traffic channels are currentlyallocated to the currently set talkgroup or that no traffic channels arecurrently allocated to the currently set talkgroup for at least aparticular period of time (e.g., 10 seconds). Accordingly, if atalkgroup becomes inactive while communication device 150 is currentlyset to that talkgroup during a scanning process, CPU 401 may act to setcommunication device 150 to a different talkgroup without waiting theentirety of the predetermined period. This may further reduce the amountof resources wasted monitoring an inactive talkgroup and further improvethe efficiency of the systems disclosed herein.

In certain implementations, the user may be provided with an option toextend the predetermined time that communication device 150 remains setto a particular talkgroup during the scanning process. For example, whenCPU 401 makes a positive determination in S609 or S621, CPU 401 maygenerate a prompt to the user (e.g., displayed on display 404) that asksthe user if the user wants to further listen to the currently settalkgroup. If the user provides input to communication device 150indicating an affirmative answer, the predetermined time may berestarted or another time period for remaining set to the currenttalkgroup, such as an extra minute or twice the original amount of time,may be selected for the current talkgroup, for example.

In certain implementations, communication device 150 may perform theprocesses of FIGS. 5 and 6 with respect to traffic channels instead oftalkgroups.

Application of techniques disclosed herein may result in reducing timeand user-resources wasted while monitoring inactive talkgroups byskipping inactive talkgroups during the scanning process; allowing usersto quickly determine which talkgroups are active based on visualinspection; and/or allowing users to quickly switch between talkgroupsby selecting from active talkgroups.

The flowcharts and block diagrams in FIGS. 1-6 illustrate examples ofthe architecture, functionality, and operation of possibleimplementations of systems, methods and computer program productsaccording to various aspects of the present disclosure. In this regard,each block in the flowcharts or block diagrams may represent a module,segment, or portion of code, which comprises one or more executableinstructions for implementing the specified logical function(s). Itshould also be noted that, in some alternative implementations, thefunctions noted in the block may occur out of the order noted in thefigures. For example, two blocks shown in succession may, in fact, beexecuted substantially concurrently, or the blocks may sometimes beexecuted in the reverse order, depending upon the functionalityinvolved. It will also be noted that each block of the block diagramsand/or flowchart illustration, and combinations of blocks in the blockdiagrams and/or flowchart illustration, can be implemented by specialpurpose hardware-based systems that perform the specified functions oracts, or combinations of special purpose hardware and computerinstructions.

The terminology used herein is for the purpose of describing particularaspects only and is not intended to be limiting of the disclosure. Asused herein, the singular forms “a,” “an,” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “includes,”“comprises,” “including,” and/or “comprising,” when used in thisspecification, specify the presence of stated features, integers, steps,operations, elements, and/or components, but do not preclude thepresence or addition of one or more other features, integers, steps,operations, elements, components, and/or groups thereof. Moreover, asused herein, the term “user” is intended to refer to one or more of aperson, an organization, a computer, or any other entity, apparatus,device, or system.

Furthermore, the terms “communication device,” “communication system,”“device,” and “system” may generally refer to and include satellites110, satellite links 115, operation hubs 130, devices or systemsconnected with clouds 140, devices 120, gateways 135, communicationdevices 150, or any other devices or systems that facilitate thecommunication of information. Moreover, the terms “management center,”“management device,” and “management system” may generally refer to andinclude satellites 110, satellite links 115, operation hubs 130, devicesor systems connected with clouds 140, devices 120, gateways 135,communication devices 150, or any other devices or systems thatfacilitate managing the communication of information.

While the techniques and implementations disclosed herein have generallybeen described in the context of satellite-based PTT communication, suchtechniques and implementations may readily be applied to othercommunication systems. For example, the techniques and implementationsdisclosed herein may be applied to cellular-based PTT communicationsystems, other terrestrial-based PTT communication systems, land mobileradio (“LMR”) communication systems, hybrid communication systems usingone or more of the communication systems described herein or apparent toone of skill in the art, or any other communication systems conceivableby one of skill in the art.

The corresponding structures, materials, acts, and equivalents of anymeans or step plus function elements in the claims below are intended toinclude any disclosed structure, material, or act for performing thefunction in combination with other claimed elements as specificallyclaimed. The description of the present disclosure has been presentedfor purposes of illustration and description, but is not intended to beexhaustive or limited to the disclosure in the form disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of thedisclosure. The aspects of the disclosure herein were chosen anddescribed in order to explain the principles of the disclosure and thepractical application, and to enable others of ordinary skill in the artto understand the disclosure with various modifications as are suited tothe particular use contemplated.

What is claimed is:
 1. A method, comprising: receiving, at acommunication device, an instruction to enter a scanning mode, thecommunication device permitted to participate in a plurality oftalkgroups; in response to receiving the instruction to enter thescanning mode, determining that at least a first one of the plurality oftalkgroups is active; in response to determining that at least one ofthe plurality of talkgroups is active, setting the communication deviceto a first active talkgroup of the plurality of talkgroups; determiningthat a predetermined time has passed since the communication device wasset to the first active talkgroup; in response to determining that thepredetermined time has passed since the communication device was set tothe first active talkgroup, determining that at least a second one ofthe plurality of talkgroups, other than the first active talkgroup, isactive; and in response to determining that the second talkgroup isactive, setting the communication device to the second active talkgroupof the plurality of talkgroups.
 2. The method of claim 1, furthercomprising: receiving, at the communication device, information from acontrol channel, the information from the control channel indicatingthat individual ones of the plurality of talkgroups are active, whereindetermining that at least one of the plurality of talkgroups is activecomprises determining that a particular talkgroup is active based on theinformation from the control channel indicating that the particulartalkgroup is active; and wherein setting the communication device to thefirst active talkgroup of the plurality of talkgroups comprises settingthe communication device to the particular talkgroup, as the firstactive talkgroup, in response to determining that the particulartalkgroup is active.
 3. The method of claim 1, further comprising:displaying, on the communication device, a list of at least some of theplurality of talkgroups including, for each active talkgroup of theplurality of talkgroups that is displayed in the list, an indicatoridentifying the active talkgroup as an active talkgroup.
 4. The methodof claim 3, further comprising: receiving, at the communication device,a selection of a selected one of the plurality of talkgroups from thelist displayed on the communication device, the selected one of theplurality of talkgroups being identified as an active talkgroup by anindicator included in the list; and setting the communication device tothe selected one of the plurality of talkgroups in response to receivingthe selection of the selected one of the plurality of talkgroups.
 5. Themethod of claim 1, further comprising: determining, while thecommunication device is set to the second active talkgroup, that thesecond active talkgroup has become inactive; in response to determiningthat the second active talkgroup has become inactive, determining thatnone of the plurality of talkgroups is active; and in response todetermining that none of the plurality of talkgroups is active,providing a notification that none of the plurality of talkgroups isactive.
 6. The method of claim 1, wherein, in the process of determiningthat the predetermined time has passed since the communication devicewas set to the first active talkgroup, the predetermined time is basedon a priority level associated with the first active talkgroup.
 7. Acommunication device permitted to participate in a plurality oftalkgroups, the communication device comprising: one or more processors,wherein the one or more processors are configured to: receive aninstruction for the communication device to enter a scanning mode; inresponse to receiving the instruction to enter the scanning mode,determine that at least one of the plurality of talkgroups is active; inresponse to determining that at least one of the plurality of talkgroupsis active, set the communication device to a first active talkgroup ofthe plurality of talkgroups; determine that a predetermined time haspassed since the communication device was set to the first activetalkgroup; in response to determining that the predetermined time haspassed since the communication device was set to the first activetalkgroup, determine that at least a second one of the plurality oftalkgroups, other than the first active talkgroup, is active; and inresponse to determining that the second talkgroup is active, set thecommunication device to the second active talkgroup of the plurality oftalkgroups.
 8. The communication device of claim 7, wherein the one ormore processors are configured to receive, at the communication device,information from a control channel, the information from the controlchannel indicating that individual ones of the plurality of talkgroupsare active; wherein the one or more processors, when determining that atleast one of the plurality of talkgroups is active, are configured todetermine that a particular talkgroup is active based on the informationfrom the control channel indicating that the particular talkgroup isactive; and wherein the one or more processors, when setting thecommunication device to the first active talkgroup of the plurality oftalkgroups, are configured to set the communication device to theparticular talkgroup, as the first active talkgroup, in response todetermining that the particular talkgroup is active.
 9. Thecommunication device of claim 7, further comprising: a display device,wherein the one or more processors are configured to control the displaydevice to display a list of at least some of the plurality of talkgroupsincluding, for each active talkgroup of the plurality of talkgroups thatis displayed in the list, an indicator identifying the active talkgroupas an active talkgroup.
 10. The communication device of claim 9, whereinthe communication device is configured to receive a selection of aselected one of the plurality of talkgroups from the list displayed bythe display device, the selected one of the plurality of talkgroupsbeing identified as an active talkgroup by an indicator included in thelist, and wherein the one or more processors are configured to set thecommunication device to the selected one of the plurality of talkgroupsin response to receiving the selection of the selected one of theplurality of talkgroups.
 11. The communication device of claim 7,wherein the one or more processors are configured to: determine, whilethe communication device is set to the second active talkgroup, that thesecond active talkgroup has become inactive; in response to determiningthat the second active talkgroup has become inactive, determine thatnone of the plurality of talkgroups is active; and in response todetermining that none of the plurality of talkgroups is active, providea notification that none of the plurality of talkgroups is active. 12.The communication device of claim 7, wherein, when the one or moreprocessors determine that the predetermined time has passed since thecommunication device was set to the first active talkgroup, thepredetermined time is based on a priority level associated with thefirst active talkgroup.
 13. The communication device of claim 7, whereinthe communication device is a satellite communication device permittedto participate in a plurality of Push-to-Talk over satellite talkgroups.14. The communication device of claim 7, wherein the communicationdevice is a cellular communication device permitted to participate in aplurality of Push-to-Talk over cellular talkgroups.
 15. Thecommunication device of claim 7, wherein the communication device is aland mobile radio permitted to participate in a plurality ofPush-to-Talk over land mobile radio talkgroups.
 16. A non-transitory,computer-readable medium configured to store computer-readableinstructions that, when executed by a processing device, instruct theprocessing device to perform a method comprising: receiving, at acommunication device, an instruction to enter a scanning mode, thecommunication device permitted to participate in a plurality oftalkgroups; in response to receiving the instruction to enter thescanning mode, determining that at least one of the plurality oftalkgroups is active; in response to determining that at least one ofthe plurality of talkgroups is active, setting the communication deviceto a first active talkgroup of the plurality of talkgroups; determiningthat a predetermined time has passed since the communication device wasset to the first active talkgroup; in response to determining that thepredetermined time has passed since the communication device was set tothe first active talkgroup, determining that at least a second one ofthe plurality of talkgroups, other than the first active talkgroup, isactive; and in response to determining that the second talkgroup isactive, setting the communication device to the second active talkgroupof the plurality of talkgroups.
 17. The non-transitory,computer-readable medium according to claim 16, wherein thecomputer-readable instructions, when executed by the processing device,instruct the processing device to perform the method further comprising:receiving, at the communication device, information from a controlchannel, the information from the control channel indicating thatindividual ones of the plurality of talkgroups are active, whereindetermining that at least one of the plurality of talkgroups is activecomprises determining that a particular talkgroup is active based on theinformation from the control channel indicating that the particulartalkgroup is active, and wherein setting the communication device to thefirst active talkgroup of the plurality of talkgroups comprises settingthe communication device to the particular talkgroup, as the firstactive talkgroup, in response to determining that the particulartalkgroup is active.
 18. The non-transitory, computer-readable mediumaccording to claim 16, wherein the computer-readable instructions, whenexecuted by the processing device, instruct the processing device toperform the method further comprising: displaying, on the communicationdevice, a list of at least some of the plurality of talkgroupsincluding, for each active talkgroup of the plurality of talkgroups thatis displayed in the list, an indicator identifying the active talkgroupas an active talkgroup.
 19. The non-transitory, computer-readable mediumaccording to claim 16, wherein the computer-readable instructions, whenexecuted by the processing device, instruct the processing device toperform the method further comprising: determining, while thecommunication device is set to the second active talkgroup, that thesecond active talkgroup has become inactive; in response to determiningthat the second active talkgroup has become inactive, determining thatnone of the plurality of talkgroups is active; and in response todetermining that none of the plurality of talkgroups is active,providing a notification that none of the plurality of talkgroups isactive.
 20. The non-transitory, computer-readable medium according toclaim 16, wherein, in the process of determining that the predeterminedtime has passed since the communication device was set to the firstactive talkgroup, the predetermined time is based on a priority levelassociated with the first active talkgroup.